$(function () {
    layui.config({
        base: './../../../static/lib/dist/'
    });

    layui.use([ 'laydate', 'form', 'notice', 'table', 'selectPlus', 'element'],function () {
        var form = layui.form;
        var notice = layui.notice;
        var table = layui.table;
        var laydate = layui.laydate;
        var selectPlus = layui.selectPlus;
        var element = layui.element;

        //查询项目信息
        searchAll().then(value => {
            if(value.code == 200){
                if(value.data!=null && value.data.length>0){
                    value.data.forEach(pinfo=>{
                        $('#prolist').append('<option value="'+pinfo.proMark+'">'+pinfo.proName+'</option>')
                    })
                    form.render(); //更新全部
                }
            }else{
                notice.error('获取项目信息失败，'+value.msg)
            }
        }).catch(reason => {
            notice.error('获取项目信息失败，服务器未连接')
        })

        //查询菜单信息
        function inittable_menu(promark) {
            let initjson = {
                elem: '#menulist',
                url: 'http://127.0.0.1:8098/amc/sys/base/menu/page',
                params: {
                    proMark: promark
                },
                headers: {'authorization': layui.data('user').token},
                id: 'menu_tab',
                cols: [[
                    {type:'checkbox', fixed: 'left'}
                    ,{field:'id', title: 'ID', sort: true}
                    ,{field:'menuName', title: '菜单名称', edit: 'text'}
                    ,{field:'menuUrl', title: '菜单标示'}
                    ,{field:'remark', title: '备注', edit: 'text'}
                    ,{field:'createTime', title: '创建时间'}
                    ,{fixed: 'right', title:'操作', toolbar: '#row_bar_menu', width:150}
                ]]
            }
            tableinit(table, initjson)
        }
        function tableReload_menu(){
            table.reload('menu_tab', {
                where: {
                    proMark: $('#prolist').val()
                } //设定异步数据接口的额外参数
            });
        }

        form.on('select(profilter)', function(data){
            if(data.value == ''){
                return false
            }
            inittable_menu(data.value)
        });

        //监听行工具事件
        table.on('tool(menufilter)', function(obj){
            var data = obj.data;
            if(obj.event === 'del'){
                layer.confirm('确认要删除吗', function(index){
                    deleteMenu(data.id).then(value => {
                        if(value.code == 200){
                            layer.msg('删除成功', {icon: 1});
                            tableReload_menu()
                        }else{
                            layer.msg('删除失败，'+value.msg)
                        }
                    }).catch(reason => {
                        layer.msg('删除失败，服务器未连接')
                    })
                });
            }else if(obj.event === 'func'){
                xadmin.open('功能信息','./func-list.html',800,600)
                layui.data('menu', {
                    key: 'func',
                    value: data
                })
            }
        });

        form.on('submit(save)', function (data) {
            if($('#prolist').val() == ''){
                notice.error('请先选择项目')
                return false
            }
            let menuInfo = data.field
            menuInfo.proMark = $('#prolist').val()
            saveMenu(menuInfo).then(value => {
                if(value.code == 200){
                    layer.msg('保存成功', {icon: 6});
                    tableReload_menu()
                }else{
                    notice.error('保存失败，'+value.msg)
                }
            }).catch(reason => {
                notice.error('保存失败，服务器未连接')
            })
        })

        //监听单元格编辑
        table.on('edit(menufilter)', function(obj){
            var value = obj.value //得到修改后的值
                ,data = obj.data //得到所在行所有键值
                ,field = obj.field; //得到字段
            data[field] = value
            updateMenu(data).then(value => {
                if(value.code == 200){
                    layer.msg('修改成功', {icon: 1});
                    tableReload_menu()
                }else{
                    layer.msg('修改失败，'+value.msg)
                }
            }).catch(reason => {
                layer.msg('服务器未连结')
            })
        });

    })
})